Skip to main content

Arquitetura do Banco de Dados

Tabelas Adicionadas e Atualizações

Audit

LinhasDescriçãoTipo
idIdentificador único de cada auditoriaChave primária
data_auditoriaData em que a auditoria foi realizadaDate
id_fissuraIdentificador da fissura auditada; referência a fissure.idChave estrangeira
id_auditorIdentificador do auditor responsável; referência a user.idChave estrangeira
statusEstado atual da auditoria (ex: validado, rejeitado, pendente)Integer
modifiedIndica se a anotação original foi modificada após a auditoriaInteger (booleano: 0 ou 1)

Esta tabela registra o processo de auditoria das fissuras detectadas. Cada registro está vinculado a um auditor e a uma fissura específica, permitindo controle de qualidade sobre as classificações feitas automaticamente.


Building (atualizada)

LinhasDescriçãoTipo
idIdentificador único de cada edifícioChave primária
id_expedicaoIdentificador da expedição à qual o edifício pertence; referência a expedition.idChave estrangeira
nomeNome do edifícioString(200)
complementoInformação adicional do endereço ou referência complementarString
descricaoDescrição detalhada do edifício, como características e finalidadeString
foto_fachadaURL da imagem da fachada do edifícioString

Esta tabela possui um relacionamento de um-para-muitos com a tabela Image, permitindo que múltiplas imagens estejam associadas a um mesmo edifício.


Expedition (atualizada)

LinhasDescriçãoTipo
idIdentificador único de cada expediçãoChave primária
nomeNome atribuído à expediçãoString(200)
localizacaoLocalidade onde a expedição foi realizadaString
data_criacaoData em que o registro da expedição foi criadoDate
ultima_attData da última atualização feita no registro da expediçãoDate (nullable)
id_responsavelIdentificador do usuário responsável; referência a user.idChave estrangeira
descricaoTexto descritivo detalhando o propósito e atividades da expediçãoString
foto_capaURL da imagem utilizada como foto de capaString

Esta tabela se relaciona com Building, permitindo que uma expedição agrupe diversos edifícios. O campo id_responsavel representa o vínculo com a tabela User, identificando quem criou a expedição.


Fissure (atualizada)

LinhasDescriçãoTipo
idIdentificador único de cada fissuraChave primária
confiabilidadeGrau de confiança na detecção ou classificação da fissuraInteger
categoriaClassificação da fissura conforme seu tipoString(200)
id_imageIdentificador da imagem à qual a fissura pertence; referência a image.idChave estrangeira
url_fissuraURL da imagem recortada destacando apenas a fissuraString
categoria_atualNova classificação (caso revisada por auditoria ou outro processo)String(200)

A tabela Fissure está conectada à tabela Image através do campo id_image, e também se relaciona com a tabela Audit, permitindo o registro de auditorias para cada fissura. O campo categoria_atual permite armazenar uma reclassificação opcional após validações.

Image (atualizada)

LinhasDescriçãoTipo
idIdentificador único de cada registro de imagemChave primária
urlURL onde a imagem original está armazenadaString
nomeNome do arquivo de imagemString(200)
hora_coletaData e hora em que a imagem foi coletadaDateTime
orientacaoOrientação cardeal da fachada do edifício no momento da capturaString
id_predioIdentificador do prédio ao qual a imagem pertence; referência a building.idChave estrangeira
id_modeloIdentificador do modelo utilizado na análise; referência a model.idChave estrangeira (nullable)

A tabela Image se relaciona com a tabela Fissure, representando todas as fissuras detectadas na imagem. O campo id_modelo é opcional, permitindo armazenar o modelo que analisou a imagem, se aplicável.

Log

LinhasDescriçãoTipo
idIdentificador único de cada logChave primária
id_responsavelIdentificador do usuário responsável pela ação; referência a user.idChave estrangeira
dataData e hora em que o evento foi registradoDateTime
statusCódigo de status ou tipo do evento registradoInteger
descricaoDescrição textual da ação realizada ou evento ocorridoString(500)

A tabela Log registra eventos e ações realizadas por usuários no sistema, permitindo rastreamento e auditoria de interações. Cada log está vinculado a um usuário através do campo id_responsavel.

Model (atualizada)

LinhasDescriçãoTipo
idIdentificador único de cada modeloChave primária
urlReferência à localização do arquivo do modelo em storageString
nomeNome de identificação do modeloString(200)
tipoCategoria do modelo (por exemplo: CNN, ResNet, etc.)String
lossValor da função de perda (loss) obtido ao final do treinamentoInteger
loss_tipoNome da função de perda utilizada (ex: “cross_entropy”, “MSE”)String

O modelo se relaciona com a tabela Image, permitindo rastrear quais imagens foram analisadas com base em cada modelo treinado.

User (atualizada)

LinhasDescriçãoTipo
idIdentificador único de cada usuárioChave primária
emailEndereço de e-mail usado para autenticação (único)String(200)
nome_completoNome completo do usuário para exibição e identificaçãoString(200)
senhaSenha de acesso (armazenada de forma segura/criptografada)String
cargoFunção ou perfil de acesso do usuário dentro da aplicaçãoString

O usuário pode ser responsável por expedições (Expedition), realizar auditorias de fissuras (Audit) e gerar registros de log (Log). O campo email deve ser único no sistema para garantir a autenticação segura.

Alterações no Banco de Dados

✅ Tabela Adicionada

  • audit: nova tabela para controle de auditorias sobre fissuras. Relaciona-se com user (auditor) e fissure.
  • log: nova tabela para registrar eventos e interações de usuários no sistema.

♻️ Tabelas Atualizadas

  • building

    • Confirmação de que os campos complemento, descricao e foto_fachada são do tipo String sem limite explícito.
    • Adição do relacionamento com Image via db.relationship.
  • expedition

    • Inclusão de relacionamento com Building via predios.
    • Uso de back_populates para relacionamento bidirecional com User.
  • fissure

    • Adição dos campos url_fissura e categoria_atual.
    • Inclusão de relacionamento com Audit.
  • image

    • Remoção dos campos obsoletos img_resultado e anotacao.
    • Adição do relacionamento com Fissure e confirmação de id_modelo como nullable.
  • model

    • Adição do relacionamento com Image.
  • user

    • Campo email definido como único (unique=True).
    • Inclusão dos relacionamentos com Expedition, Audit e Log via back_populates.

Fonte: Os autores (2025)